class Pcb:
    '''
    Prop:
    *Controlar la informacion de un proceso teniendo en cuenta:
    '''       
    def __init__(self, idProg, prog, prioridad):        
        self.idPrograma = idProg
        self.currentInst = 0 #guarda la instruccion actual a procesar 
        #y el desplazamiento dentro de la memoria
        self.programa = prog # es una lista de instrucciones 
        self.estaEnDisco = True
        self.prioridad = prioridad
        self.bursCount = 0
        
    def getEstaEnDisco(self):
        return self.estaEnDisco
        
    def setEstaEnDisco(self,booleano):
        self.estaEnDisco = booleano
        
    #Se utiliza para saber cuando terminar el programa.
    def getCantInstrucciones(self):
        return len(self.programa.getListaInstrucciones())  
    
    def getIdProgr(self):
        return self.idPrograma
    
    def getCurrentInst(self):
        return self.currentInst
    
    def getPrograma(self):
        return self.programa
    
    def getPrioridad(self):
        return self.prioridad
    
    def getDirBase(self):
        return self.dirBase
    
    def envejece(self,cantBurstParaEnvejecer): # CHEQUEAR
        if cantBurstParaEnvejecer is not self.bursCount:
            self.bursCount +=1
        else:
            self.aumentarPrioridad()
            self.bursCount = 0 #resetea el contador de busts
    
    def aumentarPrioridad(self):
        if self.prioridad is not 0:
            self.prioridad = self.prioridad - 1
             
    def incrementarInstruccion(self):
        self.currentInst += 1